package com.xyz.MapTest;


import java.util.HashMap;
import java.util.Map;

public class MapTest {
    public static void main(String[] args) {
        Student s = new Student("Xiao Ming", 99);
        //创建一个映射，key 类型为 String ，value 类型 为 Student
        // 并且用 HashMap 对象来实现
        Map<String, Student> map = new HashMap<>();
        // 使用 HashMap 的  put 方法，像集合中添加新项
        map.put("Xiao Ming", s); // 将"Xiao Ming"和Student实例映射并关联
        // 使用 HashMap 的 get 方法，通过 key 快速查找到对应的 value
        Student target = map.get("Xiao Ming"); // 通过key查找并返回映射的Student实例
        System.out.println(target == s); // true，同一个实例
        System.out.println(target.score); // 99
        Student another = map.get("Bob"); // 通过另一个key查找
        System.out.println(another); // 未找到返回null

        Map<String, Integer> map1 = new HashMap<>();
        map1.put("apple", 123);
        map1.put("pear", 456);
        map1.put("banana", 789);
        //即使是遍历，也要通过遍历 key 来找对应的 value
        for (String key : map1.keySet()) {
            Integer value = map1.get(key);
            System.out.println(key + " = " + value);
        }
        //也可以直接使用 Map 对象来进行遍历
        for (Map.Entry<String, Integer> entry : map1.entrySet()) {
            String key = entry.getKey();
            Integer value = entry.getValue();
            System.out.println(key + " = " + value);
        }
    }
}

class Student {
    public String name;
    public int score;
    public Student(String name, int score) {
        this.name = name;
        this.score = score;
    }
}